package cn.core.coding.vo;

import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;

/**
 * 数据库表配置和信息 展示类
 */
@Data
@Accessors(chain = true)
public class DbTableConfAndInfoVO implements Serializable {

  private static final long serialVersionUID = 1L;

  /**
   * 代码缩进
   */
  protected String codeCi;

  /**
   * 项目路径
   */
  protected String projectPath;

  /**
   * vue项目路径
   */
  protected String projectPathVue;

  /**
   * uni项目路径
   */
  protected String projectPathUni;

  /**
   * 项目模块名称
   */
  protected String projectModuleName;

  /**
   * 数据库表前缀
   */
  protected String dbTablePrefix;

  /**
   * 配置map
   */
  protected LinkedHashMap<String, String> confMap;

  /**
   * 项目模块名称分割集合
   */
  protected LinkedHashSet<String> projectModuleNameSet;

  /**
   * 数据库表信息
   */
  protected DbTableInfoVO dbTableInfoVO;

  /**
   * 数据库表列信息集合
   */
  protected Collection<DbTableColInfoVO> dbTableColInfoVOSet;

  /**
   * 数据库表主键信息
   */
  protected DbTablePkInfoVO dbTablePkInfoVO;

  /**
   * jdbc实体类包名
   */
  protected String jdbcEntityPackageName;

  /**
   * jdbc实体类文件路径
   */
  protected String jdbcEntityFilePath;

  /**
   * 查询类包名
   */
  protected String queryPackageName;

  /**
   * 查询类文件路径
   */
  protected String queryFilePath;

  /**
   * 展示类包名
   */
  protected String voPackageName;

  /**
   * 展示类文件路径
   */
  protected String voFilePath;

  /**
   * mapper持久化接口类包名
   */
  protected String mapperPersistentInterfacesPackageName;

  /**
   * mapper持久化接口类文件路径
   */
  protected String mapperPersistentInterfacesFilePath;

  /**
   * mapper sql文件路径
   */
  protected String mapperSqlFilePath;

  /**
   * 服务接口类包名
   */
  protected String serviceInterfacesPackageName;

  /**
   * 服务接口类文件路径
   */
  protected String serviceInterfacesFilePath;

  /**
   * 服务实现类包名
   */
  protected String serviceImplementPackageName;

  /**
   * 服务实现类文件路径
   */
  protected String serviceImplementFilePath;

  /**
   * rest接口类包名
   */
  protected String restPackageName;

  /**
   * rest接口类文件路径
   */
  protected String restFilePath;

  /**
   * rest url命名前缀
   */
  protected String restUrlNamePrefix;

  /**
   * vue实体类文件路径
   */
  protected String vueEntityFilePath;

  /**
   * vue查询类文件路径
   */
  protected String vueQueryFilePath;

  /**
   * vue展示类文件路径
   */
  protected String vueVoFilePath;

  /**
   * vue api服务类文件路径
   */
  protected String vueApiServiceFilePath;

  /**
   * vue store文件路径
   */
  protected String vueStoreFilePath;

  /**
   * vue页面文件路径
   */
  protected String vueViewFilePath;

  /**
   * vue实体类文件引用路径
   */
  protected String vueEntityFileQuotePath;

  /**
   * vue查询类文件引用路径
   */
  protected String vueQueryFileQuotePath;

  /**
   * vue展示类文件引用路径
   */
  protected String vueVoFileQuotePath;

  /**
   * vue api服务类文件引用路径
   */
  protected String vueApiServiceFileQuotePath;

  /**
   * vue store文件引用路径
   */
  protected String vueStoreFileQuotePath;

}
